package Collection;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合间的操作:allAll(),containsAll()
 */
public class CollectionDemo4 {
    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("java");
        c1.add("c++");
        c1.add(".net");
        System.out.println("c1:" + c1);//c1:[java, c++, .net]
        Collection c2 = new ArrayList();
        c2.add("android");
        c2.add("ios");
        c2.add("java");
        System.out.println("c2:" + c2);//c2:[android, ios, java]
        c1.addAll(c2);//将c2添加到c1中
        System.out.println("c1:" + c1);//c1:[java, c++, .net, android, ios, java]
        //注意区分addAll()和add()的区别
        //c1.add(c2);  每次只能向集合中添加一个元素 。如list.add(2) ，仅添加一个元素2到集合list中 。
        // System.out.println("c1:" + c1);//c1:[java, c++, .net, [android, ios, java]]

        /*c1.removeAll(c2);
        System.out.println("c1:"+c1);//c1:[c++, .net]*/

        Collection c3 = new ArrayList();
        c3.add("c++");
        c3.add("android");
        c3.add("php");
        System.out.println("c3:" + c3);//c3:[c++, android, php]
        boolean contains = c1.containsAll(c3);//判断c1中是否包含c3中的所有元素
        System.out.println("是否包含" + contains);//false

        /*//retainAll() 取交集:c1仅保留与c3所共有的元素，而c3不变
        c1.retainAll(c3);
        System.out.println("c1:"+c1);//c1:[c++, android]
        System.out.println("c3:"+c3);//c3:[c++, android, php]*/

        //删交集 removeAll() 取交集:c1删除与c3所共有的元素，而c3不变
        c1.removeAll(c3);
        System.out.println("c1:"+c1);//c1:[java, .net, ios, java]
        System.out.println("c3:"+c3);//c3:[c++, android, php]
    }
}
